// import { reconize } from "../utils/enroll_reconize"

let text2 = `
200元左右天日结包餐水！每天招地铁3号线嘉禾望岗试玩充场
（做完全天报销路费10元）
【内容】现场试玩美团.今日头条，王者荣耀，小红书等等增加数量！做完删除
【时间】当天～17.30！14点前到都可以，尽量早点到
【地点】满18岁！
广州地铁3号线嘉禾望岗店
【工资】200元左右天包餐水！办公室环境舒适！有免费wifi零食泡面水果任意吃！多劳多得！
了解加微信1810920439


每天招！广州服务员传菜咨客260元天包3餐包住
【要求】男女无限、年满16岁！最少做2月17号（初八）能做到元宵优先
【时间】9点或10点~21.30点，中间有休息吃饭时间
【待遇】8-9小时145元天超出算加班！过年三天260元天、包3餐包住！中间退出按120元天结经过同意、未满3天无工资
【内容】服务员 收台 摆台倒茶水,传菜！咨客 指引
【地点】分店就近安排
①广州5号线珠江新城旁
②广州3号线客村店
③广州2号线江南西店
④广州6号线北京路店
⑤广州3号线石牌桥店
⑥广州3号线广州东站店
⑦广州7号线南村万博店
⑧广州1号1810920439
`

let text3 = `
佛山南海平洲食品厂20元招聘寒假工跨年工，包吃包住，需要做到2月15号（法定节假日额外奖励290元/天，初一到初三上班约520元一天）

招聘要求：16-45岁男女不限，需要食品健康证。（体检做满一个月报销）

工作情况：主要负责火锅食材包装、炒制、包装、看机、拉货等岗位。

工资待遇：20元/小时，一天11小时，倒夜班补贴20元/晚。综合工资6500-7000元。

工作时间：两班倒，8:00-20:00
伙食住宿：包吃包住，水电费用平摊。
工作地址：佛山南海三山

报名电话18223188168微信同号
`

let text = `
🎉⭐轻松工作1~3小时，周末双休，招聘国企保险公司上班打卡听会议、应届生、闲人兼工、宝妈都可以做，优者可放宽应聘条件
【上班时间】三天岗前培训10.30—12.00~14.00—15.30
正式上班: 上午 9:00⏰－12:00⏰
第二个月之后:上午9.00⏰-10.10⏰
【工作内容】上下班打卡坐听保险会议参加十几次合影，工作时间上午三小时，上下班打卡听会议，简单合影，下午时间可以兼做其他事业完全不影响。
【入职要求】
1、年龄25-50岁，男女不限
2、中专/高中及以上学历，有毕业证或照片。
3、至少入职一个月以上，不得私自中途不做
4、征信逾期中、犯罪不可以入职。
【上班地址】广州越秀区广州火车站附近
【薪资待遇】2000~5000，周末双休，工资月结。
添加备注来意，联系此微信！！
`

let tt =  [
    '兼职',
    '日结',
    '时间',
    '工作',
    '地点',
    '元',
    '天',
    '待遇',
    '工资',
    '岁',
    '男',
    '女',
    '福利',
    '待遇',
    '险'
]

export function reconize(text)
{
    let result = tt.map(t=>text.includes(t)).filter(r=>r)

    return result.length > 6 ? true : false
}

let matchs = [
  {keywords:['日期','时间','班次'],key:'datetime',name:'工作时间',cb(content){
      console.log(content.match(/[\d]{1-2}:[\d]{1-2}/))
  }},
  {keywords:['人数','数'],key:'num',name:'招聘人数'},
  {keywords:['地点','位置'],key:'location',name:'工作地点'},
  {keywords:['内','容'],key:'content',name:'工作内容'},
  {keywords:['价','工资','薪','酬'],key:'salary',name:'薪酬'},
  {keywords:['福','利','待','遇'],key:'treatment',name:'待遇'},
  {keywords:['联','系','方式','微信','电话'],key:'contact',name:'联系方式'},
  {keywords:['要','求'],key:'request',name:'工作要求'},
]

function parseField(l)
  {
    if(l == null) return null

    let index = l.indexOf('】')

    if(index < 0)
        index = l.indexOf('：')

    if(index < 0)
        index = l.indexOf(':')

    if(index < 0)
        index = l.indexOf(' ')

    if(index > 0)
    {
        let key = l.substring(0,index)
        let content = l.substring(index + 1)
        console.log(key)
        console.log(content)
        key = key.replace('【','')
        key = key.replace('】','')
        key = key.trim()

        //let m = l.match(/([\u4e00-\u9fa5]+?)(.*)/)
        let form = {}

        for (const match of matchs) {
            let isFind = false

            console.log('!-------------------------------------------------------------------')
            console.log(match)
            for(const keyword of match.keywords)
            {

                console.log(`${keyword} - ${key}`)
                if(key.includes(keyword))
                {
                    form[match.key] = {name:match.name,content}

                    console.log(`匹配到: ${match.name} - ${match.key}`)
                    // console.log(match.cb)

                    if(match.cb)
                    {
                      console.log('!xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

                      match.cb(content)
                    }

                    return {key:match.key,name:match.name,content}
                }
            }

        }
    }

    return null
  }

class StringBuff {
  _lines = ''
  lineIndex = 0
  constructor(text){
    this._lines = text.split('\n')
  }

  getLine(inc=true)
  {
    let line = this.lineIndex < this._lines.length?this._lines[this.lineIndex] : null

    if(inc)
    this.lineIndex = ++this.lineIndex

    return line
  }

  readContent(preKey) {
    let content = ''

    while(this.lineIndex < this._lines.length)
    {
        let line = this.getLine(false)

        if(line == '\n')
          continue

        console.log(line)

        let field = parseField(line)

        if(field)
        {
          console.log('====================================')
          console.log(field.key)
          console.log(line)
          //console.log(form)
          //console.log(form[field.key])
        }else{
          console.log(field)
          console.log(!!!field)
        }

        if(!!!field || field.key == preKey)
        {
          console.log('！！xxxxx====================')
            if(content != '')
                content += '\n' + line
            else
                content +=  line

            this.lineIndex = ++this.lineIndex

            console.log(content)
        }else{
            break
        }
    }

    return content
  }
}

export function formMatchMultiLine(str) {

  let form = {}
  let title = null
  let field = null
  let content = null

  let buff = new StringBuff(str)

  while(buff.lineIndex < buff._lines.length)
  {
      do{
          let line = buff.getLine()

          if(line == '') continue

          field = parseField(line)

          if(field)
          {
              break
          }else{
              if(line != '' && !title)
              {
                  title = line
                  form['title'] = {name:'标题',content:title}
              }
          }
      }while(buff.lineIndex < buff._lines.length)

      if(field)
      {
        console.log("继续")
        console.log(field)
          content = field.content != '\n' ? field.content : ''

          do {
              let text = buff.readContent(field.key)

              if(text != '')
              {
                  console.log(text)
                  content += text
              }else
              {
                  break
              }

          } while (buff.lineIndex < buff._lines.length);

          form[field.key] =  {name:field.name,content}
      }

      if(buff.lineIndex >= buff._lines.length)
        break
  }

  return form
}

export function formMatch(text) {

let lines = text
.split('\n')
.filter(l=>l != '')
.map(l=>{
    let index = l.indexOf('】')

    if(index < 0)
        index = l.indexOf('：')

    if(index < 0)
        index = l.indexOf(':')

    if(index < 0)
        index = l.indexOf(' ')

      if(index > 0)
      {
          let key = l.substring(0,index + 1)
          let value = l.substring(index + 1)

          key = key.replace('【','')
          key = key.replace('】','')

          //let m = l.match(/([\u4e00-\u9fa5]+?)(.*)/)
          let form = {}

          for (const match of matchs) {
              let isFind = false

              for(const keyword of match.keywords)
              {
                  console.log(keyword)
                  if(key.includes(keyword))
                  {
                      console.log('TRUE')
                      form[match.key] = value
                      isFind = true
                      break
                  }
              }

              if(isFind) break
          }

          return {key,value}
      }else
      {
          return null
      }
    })
  .filter(l=>l != null)

  let form = {}
  console.log(lines)

  //标题
  lines.forEach(l=>{
      form[l.key] = l.value
  })

  return form
}

    //日期时间
    //地点,位置
    //价格,工资,薪酬
    //内容
    //要求
    //福利 待遇
    //联系方式

    //标题
    //日期时间
    //地点
    //价格
    //内容
    //要求
    //福利 待遇
    //联系方式
